<!--

     Licensed to the Apache Software Foundation (ASF) under one
     or more contributor license agreements.  See the NOTICE file
     distributed with this work for additional information
     regarding copyright ownership.  The ASF licenses this file
     to you under the Apache License, Version 2.0 (the
     "License"); you may not use this file except in compliance
     with the License.  You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

     Unless required by applicable law or agreed to in writing,
     software distributed under the License is distributed on an
     "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
     KIND, either express or implied.  See the License for the
     specific language governing permissions and limitations
     under the License.

-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- **************************************************************** -->
<!-- *  PLEASE KEEP COMPLICATED EXPRESSIONS OUT OF THESE TEMPLATES, * -->
<!-- *  i.e. only iterate & print data where possible. Thanks, Jez. * -->
<!-- **************************************************************** -->

<html>
<head>
    <!-- Generated by groovydoc (2.4.5) on Mon Sep 12 08:35:20 CEST 2016 -->
    <title>RecordParser (Groovy Documentation)</title>
    <meta name="date" content="2016-09-12">
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <link href="../../../../../groovy.ico" type="image/x-icon" rel="shortcut icon">
    <link href="../../../../../groovy.ico" type="image/x-icon" rel="icon">
    <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">

<body class="center">
<script type="text/javascript"><!--
if (location.href.indexOf('is-external=true') == -1) {
    parent.document.title="RecordParser (Groovy Documentation)";
}
//-->
</script>
<noscript>
    <div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
    <!--   -->
</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
    <!--   -->
</a>
    <ul class="navList" title="Navigation">
        <li><a href="../../../../../overview-summary.html">Overview</a></li>
        <li><a href="package-summary.html">Package</a></li>
        <li class="navBarCell1Rev">Class</li>
        <li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
        <li><a href="../../../../../index-all.html">Index</a></li>
        <li><a href="../../../../../help-doc.html">Help</a></li>
    </ul>
</div>

<div class="subNav">
    <div>
        <ul class="navList">
            <li><a href="../../../../../index.html?io/vertx/groovy/core/parsetools/RecordParser" target="_top">Frames</a></li>
            <li><a href="RecordParser.html" target="_top">No Frames</a></li>
        </ul>
    </div>
    <div>
        <ul class="subNavList">
            <li>Summary:&nbsp;</li>
            Nested&nbsp;&nbsp;&nbsp;Field&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<li><a href="#constructor_summary">Constructor</a></li>&nbsp;&nbsp;&nbsp;<li><a href="#method_summary">Method</a></li>&nbsp;&nbsp;&nbsp;
        </ul>
        <ul class="subNavList">
            <li>&nbsp;|&nbsp;Detail:&nbsp;</li>
            Field&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<li><a href="#constructor_detail">Constructor</a></li>&nbsp;&nbsp;&nbsp;<li><a href="#method_detail">Method</a></li>&nbsp;&nbsp;&nbsp;
        </ul>
    </div>
    <a name="skip-navbar_top">
        <!--   -->
    </a></div>
<!-- ========= END OF TOP NAVBAR ========= -->

<!-- ======== START OF CLASS DATA ======== -->
<div class="header">

    <div class="subTitle">Package: <strong>io.vertx.groovy.core.parsetools</strong></div>

    <h2 title="[Groovy] Class RecordParser" class="title">[Groovy] Class RecordParser</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><ul class="inheritance"></ul></li><li>io.vertx.groovy.core.parsetools.RecordParser
</ul>
<div class="description">
    <ul class="blockList">
        <li class="blockList">

            <dl>
                <dt>All Implemented Interfaces and Traits:</dt>
                <dd>io.vertx.core.Handler</dd>
            </dl>
            <!-- todo: direct known subclasses -->
            <hr>
            <br>
<pre>@groovy.transform.CompileStatic
class RecordParser
extends java.lang.Object

</pre>



    <p> A helper class which allows you to easily parse protocols which are delimited by a sequence of bytes, or fixed
 size records.
 <p>
 Instances of this class take as input <a href='../../../../../io/vertx/groovy/core/buffer/Buffer.html' title='Buffer'>Buffer</a> instances containing raw bytes,
 and output records.
 <p>
 For example, if I had a simple ASCII text protocol delimited by '\n' and the input was the following:
 <p>
 <pre>
 buffer1:HELLO\nHOW ARE Y
 buffer2:OU?\nI AM
 buffer3: DOING OK
 buffer4:\n
 </pre>
 Then the output would be:<p>
 <pre>
 buffer1:HELLO
 buffer2:HOW ARE YOU?
 buffer3:I AM DOING OK
 </pre>
 Instances of this class can be changed between delimited mode and fixed size record mode on the fly as
 individual records are read, this allows you to parse protocols where, for example, the first 5 records might
 all be fixed size (of potentially different sizes), followed by some delimited records, followed by more fixed
 size records.
 <p>
 Instances of this class can't currently be used for protocols where the text is encoded with something other than
 a 1-1 byte-char mapping.
 <p>
 Please see the documentation for more information.
</p>

          </li>
    </ul>
</div>

<div class="summary">
    <ul class="blockList">
        <li class="blockList">
        <!-- =========== NESTED CLASS SUMMARY =========== -->
        

        <!-- =========== ENUM CONSTANT SUMMARY =========== -->
        
        <!-- =========== FIELD SUMMARY =========== -->
        

        <!-- =========== PROPERTY SUMMARY =========== -->
        

        <!-- =========== ELEMENT SUMMARY =========== -->
        

        
        <!-- ======== CONSTRUCTOR SUMMARY ======== -->
        <ul class="blockList">
                <li class="blockList"><a name="constructor_summary"><!--   --></a>
                    <h3>Constructor Summary</h3>
                    <ul class="blockList">
                    <table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructors Summary table">
                        <caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
                        <tr>
                            <th class="colFirst" scope="col">Constructor and description</th>
                        </tr>
                        
                        <tr class="altColor">
                            <td class="colFirst">
                                <code><a href="#RecordParser(java.lang.Object)">RecordParser</a></strong>
                                (java.lang.Object delegate)</code><br></td>
                        </tr>
                        
                    </table>
                   </ul>
              </li>
        </ul>
        

        
        <!-- ========== METHOD SUMMARY =========== -->
        <ul class="blockList">
            
            <li class="blockList"><a name="method_summary"><!--   --></a>
                    <h3>Methods Summary</h3>
                    <ul class="blockList">
                    <table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Methods Summary table">
                        <caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
                        <tr>
                            <th class="colFirst" scope="col">Type</th>
                            <th class="colLast" scope="col">Name and description</th>
                        </tr>
                        
                        <tr class="altColor">
                            <td class="colFirst"><code>void</strong></code></td>
                            <td class="colLast"><code><strong><a href="#delimitedMode(java.lang.String)">delimitedMode</a></strong>(java.lang.String delim)</code><br>Flip the parser into delimited mode, and where the delimiter can be represented
 by the String <code>delim</code> encoded in latin-1 . </td>
                        </tr>
                        
                        <tr class="rowColor">
                            <td class="colFirst"><code>void</strong></code></td>
                            <td class="colLast"><code><strong><a href="#delimitedMode(io.vertx.groovy.core.buffer.Buffer)">delimitedMode</a></strong>(<a href='../../../../../io/vertx/groovy/core/buffer/Buffer.html'>Buffer</a> delim)</code><br>Flip the parser into delimited mode, and where the delimiter can be represented
 by the delimiter <code>delim</code>.</td>
                        </tr>
                        
                        <tr class="altColor">
                            <td class="colFirst"><code>void</strong></code></td>
                            <td class="colLast"><code><strong><a href="#fixedSizeMode(int)">fixedSizeMode</a></strong>(int size)</code><br>Flip the parser into fixed size mode, where the record size is specified by <code>size</code> in bytes.</td>
                        </tr>
                        
                        <tr class="rowColor">
                            <td class="colFirst"><code>java.lang.Object</strong></code></td>
                            <td class="colLast"><code><strong><a href="#getDelegate()">getDelegate</a></strong>()</code><br></td>
                        </tr>
                        
                        <tr class="altColor">
                            <td class="colFirst"><code>void</strong></code></td>
                            <td class="colLast"><code><strong><a href="#handle(io.vertx.groovy.core.buffer.Buffer)">handle</a></strong>(<a href='../../../../../io/vertx/groovy/core/buffer/Buffer.html'>Buffer</a> buffer)</code><br>This method is called to provide the parser with data.</td>
                        </tr>
                        
                        <tr class="rowColor">
                            <td class="colFirst"><code>static&nbsp;<a href='../../../../../io/vertx/groovy/core/parsetools/RecordParser.html'>RecordParser</a></strong></code></td>
                            <td class="colLast"><code><strong><a href="#newDelimited(java.lang.String, Handler<Buffer>)">newDelimited</a></strong>(java.lang.String delim, io.vertx.core.Handler&lt;<a href='../../../../../io/vertx/groovy/core/buffer/Buffer.html' title='Buffer'>Buffer</a>&gt; output)</code><br>Create a new <code>RecordParser</code> instance, initially in delimited mode, and where the delimiter can be represented
 by the String <code></code> delim endcoded in latin-1 . </td>
                        </tr>
                        
                        <tr class="altColor">
                            <td class="colFirst"><code>static&nbsp;<a href='../../../../../io/vertx/groovy/core/parsetools/RecordParser.html'>RecordParser</a></strong></code></td>
                            <td class="colLast"><code><strong><a href="#newDelimited(io.vertx.groovy.core.buffer.Buffer, Handler<Buffer>)">newDelimited</a></strong>(<a href='../../../../../io/vertx/groovy/core/buffer/Buffer.html'>Buffer</a> delim, io.vertx.core.Handler&lt;<a href='../../../../../io/vertx/groovy/core/buffer/Buffer.html' title='Buffer'>Buffer</a>&gt; output)</code><br>Create a new <code>RecordParser</code> instance, initially in delimited mode, and where the delimiter can be represented
 by the <code>Buffer</code> delim.</td>
                        </tr>
                        
                        <tr class="rowColor">
                            <td class="colFirst"><code>static&nbsp;<a href='../../../../../io/vertx/groovy/core/parsetools/RecordParser.html'>RecordParser</a></strong></code></td>
                            <td class="colLast"><code><strong><a href="#newFixed(int, Handler<Buffer>)">newFixed</a></strong>(int size, io.vertx.core.Handler&lt;<a href='../../../../../io/vertx/groovy/core/buffer/Buffer.html' title='Buffer'>Buffer</a>&gt; output)</code><br>Create a new <code>RecordParser</code> instance, initially in fixed size mode, and where the record size is specified
 by the <code>size</code> parameter.</td>
                        </tr>
                        
                        <tr class="altColor">
                            <td class="colFirst"><code>void</strong></code></td>
                            <td class="colLast"><code><strong><a href="#setOutput(Handler<Buffer>)">setOutput</a></strong>(io.vertx.core.Handler&lt;<a href='../../../../../io/vertx/groovy/core/buffer/Buffer.html' title='Buffer'>Buffer</a>&gt; output)</code><br></td>
                        </tr>
                        
                    </table>
                   </ul>
              </li>
            
            <li class="blockList"><a name="method_summary"><!--   --></a>
                    <h3>Inherited Methods Summary</h3>
                    <ul class="blockList">
                    <table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Inherited Methods Summary table">
                        <caption><span>Inherited Methods</span><span class="tabEnd">&nbsp;</span></caption>
                        <tr>
                            <th class="colFirst" scope="col">Methods inherited from class</th>
                            <th class="colLast" scope="col">Name</th>
                        </tr>
                        
                        <tr class="altColor">
                            <td class="colFirst"><code>class java.lang.Object</strong></code></td>
                            <td class="colLast"><code>java.lang.Object#wait(long, int), java.lang.Object#wait(long), java.lang.Object#wait(), java.lang.Object#equals(java.lang.Object), java.lang.Object#toString(), java.lang.Object#hashCode(), java.lang.Object#getClass(), java.lang.Object#notify(), java.lang.Object#notifyAll()</code></td>
                        </tr>
                    </table>
                   </ul>
              </li>
                
        </ul>
        
    </li>
    </ul>
</div>

<div class="details">
    <ul class="blockList">
        <li class="blockList">
           

            

            

            

            
            <!-- =========== CONSTRUCTOR DETAIL =========== -->
            <ul class="blockList">
                <li class="blockList"><a name="constructor_detail">
                    <!--   -->
                </a>
                    <h3>Constructor Detail</h3>
                    
                        <a name="RecordParser(java.lang.Object)"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4><strong>RecordParser</strong>(java.lang.Object delegate)</h4>
                                <p></p>
                            </li>
                        </ul>
                    
                </li>
            </ul>
            


            
            <!-- =========== METHOD DETAIL =========== -->
            <ul class="blockList">
                <li class="blockList"><a name="method_detail">
                    <!--   -->
                </a>
                    <h3>Method Detail</h3>
                    
                        <a name="delimitedMode(java.lang.String)"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4>void <strong>delimitedMode</strong>(java.lang.String delim)</h4>
                                <p> Flip the parser into delimited mode, and where the delimiter can be represented
 by the String <code>delim</code> encoded in latin-1 . Don't use this if your String contains other than latin-1 characters.
 <p>
 This method can be called multiple times with different values of delim while data is being parsed.
   <DL><DT><B>Parameters:</B></DT><DD><code>delim</code> -  the new delimeter</DD></DL></p>
                            </li>
                        </ul>
                    
                        <a name="delimitedMode(io.vertx.groovy.core.buffer.Buffer)"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4>void <strong>delimitedMode</strong>(<a href='../../../../../io/vertx/groovy/core/buffer/Buffer.html'>Buffer</a> delim)</h4>
                                <p> Flip the parser into delimited mode, and where the delimiter can be represented
 by the delimiter <code>delim</code>.
 <p>
 This method can be called multiple times with different values of delim while data is being parsed.
   <DL><DT><B>Parameters:</B></DT><DD><code>delim</code> -  the new delimiter</DD></DL></p>
                            </li>
                        </ul>
                    
                        <a name="fixedSizeMode(int)"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4>void <strong>fixedSizeMode</strong>(int size)</h4>
                                <p> Flip the parser into fixed size mode, where the record size is specified by <code>size</code> in bytes.
 <p>
 This method can be called multiple times with different values of size while data is being parsed.
   <DL><DT><B>Parameters:</B></DT><DD><code>size</code> -  the new record size</DD></DL></p>
                            </li>
                        </ul>
                    
                        <a name="getDelegate()"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4>java.lang.Object <strong>getDelegate</strong>()</h4>
                                <p></p>
                            </li>
                        </ul>
                    
                        <a name="handle(io.vertx.groovy.core.buffer.Buffer)"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4>void <strong>handle</strong>(<a href='../../../../../io/vertx/groovy/core/buffer/Buffer.html'>Buffer</a> buffer)</h4>
                                <p> This method is called to provide the parser with data.
   <DL><DT><B>Parameters:</B></DT><DD><code>buffer</code> -  a chunk of data</DD></DL></p>
                            </li>
                        </ul>
                    
                        <a name="newDelimited(java.lang.String, Handler<Buffer>)"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4>static&nbsp;<a href='../../../../../io/vertx/groovy/core/parsetools/RecordParser.html'>RecordParser</a> <strong>newDelimited</strong>(java.lang.String delim, io.vertx.core.Handler&lt;<a href='../../../../../io/vertx/groovy/core/buffer/Buffer.html' title='Buffer'>Buffer</a>&gt; output)</h4>
                                <p> Create a new <code>RecordParser</code> instance, initially in delimited mode, and where the delimiter can be represented
 by the String <code></code> delim endcoded in latin-1 . Don't use this if your String contains other than latin-1 characters.
 <p>
 <code>output</code> Will receive whole records which have been parsed. <DL><DT><B>Returns:</B></DT><DD></DD></DL><DL><DT><B>Parameters:</B></DT><DD><code>delim</code> -  the initial delimiter string</DD><DD><code>output</code> -  handler that will receive the output</DD></DL></p>
                            </li>
                        </ul>
                    
                        <a name="newDelimited(io.vertx.groovy.core.buffer.Buffer, Handler<Buffer>)"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4>static&nbsp;<a href='../../../../../io/vertx/groovy/core/parsetools/RecordParser.html'>RecordParser</a> <strong>newDelimited</strong>(<a href='../../../../../io/vertx/groovy/core/buffer/Buffer.html'>Buffer</a> delim, io.vertx.core.Handler&lt;<a href='../../../../../io/vertx/groovy/core/buffer/Buffer.html' title='Buffer'>Buffer</a>&gt; output)</h4>
                                <p> Create a new <code>RecordParser</code> instance, initially in delimited mode, and where the delimiter can be represented
 by the <code>Buffer</code> delim.
 <p>
 <code>output</code> Will receive whole records which have been parsed. <DL><DT><B>Returns:</B></DT><DD></DD></DL><DL><DT><B>Parameters:</B></DT><DD><code>delim</code> -  the initial delimiter buffer</DD><DD><code>output</code> -  handler that will receive the output</DD></DL></p>
                            </li>
                        </ul>
                    
                        <a name="newFixed(int, Handler<Buffer>)"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4>static&nbsp;<a href='../../../../../io/vertx/groovy/core/parsetools/RecordParser.html'>RecordParser</a> <strong>newFixed</strong>(int size, io.vertx.core.Handler&lt;<a href='../../../../../io/vertx/groovy/core/buffer/Buffer.html' title='Buffer'>Buffer</a>&gt; output)</h4>
                                <p> Create a new <code>RecordParser</code> instance, initially in fixed size mode, and where the record size is specified
 by the <code>size</code> parameter.
 <p>
 <code>output</code> Will receive whole records which have been parsed. <DL><DT><B>Returns:</B></DT><DD></DD></DL><DL><DT><B>Parameters:</B></DT><DD><code>size</code> -  the initial record size</DD><DD><code>output</code> -  handler that will receive the output</DD></DL></p>
                            </li>
                        </ul>
                    
                        <a name="setOutput(Handler<Buffer>)"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4>void <strong>setOutput</strong>(io.vertx.core.Handler&lt;<a href='../../../../../io/vertx/groovy/core/buffer/Buffer.html' title='Buffer'>Buffer</a>&gt; output)</h4>
                                <p></p>
                            </li>
                        </ul>
                    
                </li>
            </ul>
            
        </li>
    </ul>
</div>

<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar_bottom">
    <!--   -->
</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
    <!--   -->
</a>
    <ul class="navList" title="Navigation">
        <li><a href="../../../../../overview-summary.html">Overview</a></li>
        <li><a href="package-summary.html">Package</a></li>
        <li class="navBarCell1Rev">Class</li>
        <li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
        <li><a href="../../../../../index-all.html">Index</a></li>
        <li><a href="../../../../../help-doc.html">Help</a></li>
    </ul>
</div>

<div class="subNav">
    <div>
        <ul class="navList">
            <li><a href="../../../../../index.html?io/vertx/groovy/core/parsetools/RecordParser" target="_top">Frames</a></li>
            <li><a href="RecordParser.html" target="_top">No Frames</a></li>
        </ul>
    </div>
    <div>
        <ul class="subNavList">
            <li>Summary:&nbsp;</li>
            Nested&nbsp;&nbsp;&nbsp;Field&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<li><a href="#constructor_summary">Constructor</a></li>&nbsp;&nbsp;&nbsp;<li><a href="#method_summary">Method</a></li>&nbsp;&nbsp;&nbsp;
        </ul>
        <ul class="subNavList">
            <li>&nbsp;|&nbsp;Detail:&nbsp;</li>
            Field&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<li><a href="#constructor_detail">Constructor</a></li>&nbsp;&nbsp;&nbsp;<li><a href="#method_detail">Method</a></li>&nbsp;&nbsp;&nbsp;
        </ul>
    </div>
    <p>Groovy Documentation</p>
    <a name="skip-navbar_bottom">
        <!--   -->
    </a>
    </div>
</div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>